package org.example.spring_frist.LibraryProject.controller;


import org.example.spring_frist.LibraryProject.model.bookInfo;
import org.example.spring_frist.LibraryProject.server.booksServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * 一个图书管理系统
 * 包括登录界面，图书展示界面，增加图书界面，删除图书界面
 * 成功实现
 */
@CrossOrigin("http://127.0.0.1:5500")
@RestController
@RequestMapping("library")
public class booksController {

    @Autowired
    private booksServer booksServer;

    /**
     * 登录界面，根据前端传来的账号密码来判断账户是否存在
     * 参数               类型             是否必须
     * username          String              是
     * password          String              是
     */

    @RequestMapping("login")
    public Boolean login(String username, String password) {
        return booksServer.verify(username, password);
    }

    /**
     * 图书展示页面
     * 发起这个请求会返回一个页面，这个这个页面上包括这些书的信息，
     * 储存书的类
     */
    @RequestMapping("getList")
    public List<bookInfo> getList() {
        return booksServer.getBookList();
    }

    /**
     * 添加图书
     * 将前端发来的书本数据储存下来
     * 参数               类型
     * name             String
     * author           String
     * count            String
     * price            String
     * publisher        String
     * state            String
     */
    @RequestMapping("/addBook")
    public Boolean addBook(String name, String author, String count, String price
            , String publisher, String state) {
        return booksServer.addBook(name, author, count, price
                , publisher, state);
    }

    /**
     * 删除book
     * 传入一个参数bookId表示要删除的书
     * 参数           类型
     * bookId         String
     */
    @RequestMapping("delBook")
    public Boolean delBook(String id) {
        return booksServer.del(Integer.parseInt(id));
    }

    /**
     * 批量删除
     * 传入一个id数组，数组中包括的是这些要删的书的id
     * 参数              类型
     * delIds           Integer[]
     */
    @RequestMapping("dels")
    public Boolean dels(@RequestBody Map<String, List<String>> bookId) {
        String[] bookIds = bookId.get("bookId").toArray(new String[0]);
        return booksServer.dels(bookIds);
    }

    /**
     * 修改book
     * 先给一个id来找到指定的书，在将书的内容修改为指定的内容
     * 参数               类型
     * id               String
     * name             String
     * author           String
     * count            String
     * price            String
     * publisher        String
     * state            String
     */
    @RequestMapping("adjust")
    public Boolean adjust(String bookId, String name, String author, String count, String price
            , String publisher, String state) {
//        System.out.println(bookId);
        return booksServer.adjust(Integer.parseInt(bookId), name, author, count, price, publisher, state);
    }


}


